# python 数据类型
# 变量的创建
"""
a = 'ABC'
1. 在内存中创建了一个'ABC'的字符串
2. 在内存中创建了一个名为a的变量,并把它指向'ABC'
"""
a = 'ABC'
"""
b = a
1. 在内存中创建了一个变量 b
2. b 指向变量 a 指向的数据
"""
b = a
"""
a = 'XYZ'
1. 创建了字符串'XYZ',并将a的指向改为'XYZ'
2. 此时 b 的指向依旧是'ABC' 
"""
a = 'XYZ'
print(b) # 输出 ABC

# 通常使用全大写为常量命名
PI = 3.1415926

# 0X开头的是十六进制数,0o开头的是八进制数
print(10, 0o70, 0x3c)

# 除了十进制,其他进制因为前缀的存在,因此数据类型都为字符串
# 可以直接进行三种进制之间的运算,输出结果为十进制
print(0b1101010 * 0xF12 * 0o432 * 12)

# 进制转换
print("=== 补充:进制转换 ===")
print(bin(10))  # 十进制转二进制
print(int('1010', 2))  # 二进制转十进制
print(int('0b1011',2))  # 二进制转十进制
print(hex(0b1101101010))  # 二进制转十六进制
print(bin(0xF))  # 十六进制转二进制
print(int('F31', 16))  # 十六进制转十进制
print(hex(10))  # 十进制转十进制
print(int('0o32', 8)) # 八进制转十进制
print(oct(10))  # 十进制转八进制

print("==== 十进制转二/八/十六进制的另一种方法 ====")
print('二进制:{:b}'.format(10))
print('八进制:{:o}'.format(10))
print('十六进制:{:x}'.format(10))

